home *** CD-ROM | disk | FTP | other *** search
/ Aminet 24 / Aminet 24 (1998)(GTI - Schatztruhe)[!][Apr 1998].iso / Aminet / comm / mail / Mutt089src.lha / Mutt-0.89i-AMIGA / src / mutt_regex.h < prev    next >
C/C++ Source or Header  |  1998-01-28  |  2KB  |  55 lines

  1. /*
  2.  * Copyright (C) 1996-8 Michael R. Elkins <me@cs.hmc.edu>
  3.  * 
  4.  *     This program is free software; you can redistribute it and/or modify
  5.  *     it under the terms of the GNU General Public License as published by
  6.  *     the Free Software Foundation; either version 2 of the License, or
  7.  *     (at your option) any later version.
  8.  * 
  9.  *     This program is distributed in the hope that it will be useful,
  10.  *     but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.  *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12.  *     GNU General Public License for more details.
  13.  * 
  14.  *     You should have received a copy of the GNU General Public License
  15.  *     along with this program; if not, write to the Free Software
  16.  *     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  17.  */ 
  18.  
  19. /*
  20.  * A (more) generic interface to regular expression matching
  21.  */
  22.  
  23. #ifndef MUTT_REGEX_H
  24. #define MUTT_REGEX_H
  25.  
  26. #ifdef HAVE_REGCOMP
  27. #include <regex.h>
  28. #else
  29. #include "rxposix.h"
  30. #endif
  31.  
  32. /* this is a non-standard option supported by Solaris 2.5.x which allows
  33.  * patterns of the form \<...\>
  34.  */
  35. #ifndef REG_WORDS
  36. #define REG_WORDS 0
  37. #endif
  38.  
  39. #define REGCOMP(X,Y,Z) regcomp(X, Y, REG_WORDS|REG_EXTENDED|(Z))
  40. #define REGEXEC(X,Y) regexec(&X, Y, (size_t)0, (regmatch_t *)0, (int)0)
  41.  
  42. typedef struct
  43. {
  44.   char *pattern;    /* printable version */
  45.   void *rx;         /* avoid including "mutt_regex.h" everywhere... */
  46.   int not;        /* do not match */
  47. } REGEXP;
  48.  
  49. WHERE REGEXP Alternates;
  50. WHERE REGEXP Mask;
  51. WHERE REGEXP QuoteRegexp;
  52. WHERE REGEXP ReplyRegexp;
  53.  
  54. #endif /* MUTT_REGEX_H */
  55.